namespace AutoChess
{
    public enum ActorEventType
    {
        ActorEventNone,

        #region 模型相关

        /// <summary>
        /// 模型销毁
        /// </summary>
        ModelDestroy,
        
        /// <summary>
        /// 模型创建
        /// </summary>
        ModelCreated,

        /// <summary>
        /// 模型偏移数值更新
        /// </summary>
        ModelUpdateOffset,
        
        /// <summary>
        /// 模型更新
        /// </summary>
        ModelUpdate,
        
        /// <summary>
        /// 编辑器调试用
        /// </summary>
        RefreshRender,
        
        /// <summary>
        /// 设置展示状态
        /// </summary>
        SetShowState,
                
        /// <summary>
        /// 替换材质，用于角色技能状态
        /// </summary>
        ReplaceMaterial,
        
        #endregion

        #region 角色控制
        
        /// <summary>
        /// 战斗控制，由Actor控制，上层只需要传入攻击的目标就可以了
        /// </summary>
        ActorCtrlAttack,
        
        /// <summary>
        /// 播放特定的技能
        /// </summary>
        ActorCtrlPlaySpecSkill,
        
        #endregion
        
        PlayScaleAnim,
        
        #region 移动控制相关
        
        /// <summary>
        /// 开始移动：参数-[Vector 目标位置]
        /// </summary>
        StartMoveEvent,

        /// <summary>
        /// 开始移动：参数-[Vector 目标位置] 参数-[移动时间]
        /// </summary>
        StartMoveTimeEvent,
        
        /// <summary>
        /// 移动控制
        /// </summary>
        StopMoveEvent,
        
        /// <summary>
        /// 暂停移动
        /// </summary>
        LeaveMoveStateEvent,
        
        /// <summary>
        /// 到达目标事件
        /// </summary>
        ArriveToTarget,
        
        #endregion
        
        #region  自走棋交互
        /// <summary>
        /// Actor的状态变化-参数[ActorStateEvent 变化的event类型]
        /// </summary>
        ActorStateChange,
        
        /// <summary>
        /// Actor进入一个格子
        /// </summary>
        ACActorEnterGrid,
        /// <summary>
        /// 进入格子的逻辑表现
        /// </summary>
        ACActorEnterGridBehavior,
        
        /// <summary>
        /// Actor离开一个格子
        /// </summary>
        ACActorLeaveGrid,
        
        /// <summary>
        ///格子的事件
        /// </summary>
        OnActorEnterGrid,
        OnActorLeaveGrid,
        OnGridChangeParentRoot,
        
        #endregion
    }
}